package com.haojin.java;
/*
 * 面向对象特征之二：继承性
 * 一、继承的好处：
 *     ①减少了代码的冗余，提高了代码的复用性
 *     ②便于功能的扩展
 *     ③为之后的多态性提供了前提
 *     
 * 二、继承性的格式：class A extends B{}
 *       A：子类，派生类，subclass
 *       B：父类，超类，superclass
 *       2.1体现：一旦子类A继承父类B以后，子类A就获得了父类B中声明的所有的属性和方法。
 *          特别的：父类中声明为私有的属性和方法，子类继承父类以后
 *                仍然认为获取了父类中私有的结构，只因为封装性的影响，
 *                使得子类不能直接调用父类结构而已
 *       2.2子类继承父类以后，还可以声明自己特有的属性和方法，实现功能的拓展。
 *   extends：延展，扩展
 *   
 *   
 * 三、java中关于继承性的规定：（支持单继承和多层继承，不允许多重继承）
 *     ①一个类可以被多个子类继承
 *     ②一个类只能有一个父类：（java中类的单继承）
 *     ③子父类是相对的概念。
 *     ④子类直接继承的父类，称为：直接父类；间接继承的父类称为：间接父类
 *     ⑤子类继承父类以后，就获取了直接父类以及所有间接父类中声明的属性和方法
 * 
 * 四、 1.如果我们没有显式的声明一个类的父类的话，则此类继承于java.lang.object类
 *     2.所有的java类（除java.lang.object类）都直接或间接继承于java.lang.object类
 *     3.意味着，所有java类具有java.lang.object类声明的功能
 * 
 */
public class ExtendsTest {

	public static void main(String[] args) {
		Person p1 = new Person();
		p1.age = 1;
		p1.eat();
		
		Student s1 = new Student();
		s1.eat();
		s1.sleep();
		s1.breath();
		
		Creatrue c = new Creatrue();
		
	}
}
